Random bitstrings may form the basis for encryption, identification, authentication, and feature activation in hardware security. In current technologies, keying material for encryption may be stored as digital bitstrings in non-volatile memory on FPGAs (Field-Programmable Gate Array) and ASICs (Application Specific Integrated Circuit). However, secrets stored this way may not be secure against a determined adversary, who can use probing attacks to steal the secret. Physical Unclonable Functions (PUFs) may be used as alternative to storing digital bitstrings in non-volatile memory. PUFs may leverage random manufacturing variations in integrated circuits as the source of entropy for generating random bitstrings, and may incorporate an on-chip infrastructure for measuring and digitizing the corresponding variations. PUFs may measure and digitize the natural variations that occur in path delays, leakage current, or SRAM power-up patterns, to produce a random bit string.
The quality of a PUF may be judged based on one or more of uniqueness among a population, randomness of the bitstrings produced, and reproducibility or stability across varying environmental conditions (i.e., temperature and voltage). The quality of current PUFs may be less than ideal. Further, current techniques for determining the uniqueness, the randomness, and the stability of PUFs may be less than ideal.